/**
 * @properties={typeid:24,uuid:"9C8ED3BA-788E-43ED-A6A3-25CA5F653DE6"}
 */
function nuevo()
{
	databaseManager.revertEditedRecords()
	databaseManager.setAutoSave(false)
	controller.newRecord()
}

/**
 * @properties={typeid:24,uuid:"1A8DA70F-EDB9-41F1-AAF7-C654BDA38E10"}
 */
function salvar_datos()
{ 
	if (cliente_id == 0 || !cliente_id)
	{
		globals.DIALOGS.showWarningDialog('Aviso','Debe ingresar cliente','OK')
		elements.cliente_id.requestFocus(true);
		return false;
	}
	if (cod_mov == 0 || !cod_mov)
	{
		globals.DIALOGS.showWarningDialog('Aviso','Debe ingresar tipo de comprobante','OK')
		elements.cod_mov.requestFocus(true);
		return false;
	}
	if (nro_factura == 0 || !nro_factura)
	{
		globals.DIALOGS.showWarningDialog('Aviso','Debe ingresar número de comprobante','OK')
		elements.nro_factura.requestFocus(true);
		return false;
	}
	if (fecha_mov == 0 || !fecha_mov)
	{
		globals.DIALOGS.showWarningDialog('Aviso','Debe ingresar fecha de comprobante','OK')
		elements.fecha_mov.requestFocus(true);
		return false;
	}
	if (importe == 0 || !importe)
	{
		globals.DIALOGS.showWarningDialog('Aviso','Debe ingresar importe','OK')
		elements.importe.requestFocus(true);
		return false;
	}
	if (saldo == 0 || !saldo)
	{
		globals.DIALOGS.showWarningDialog('Aviso','Debe ingresar saldo','OK')
		elements.saldo.requestFocus(true);
		return false;
	}
	if (!tasa_iva_id)
	{
		globals.DIALOGS.showWarningDialog('Aviso','Debe ingresar tasa de iva','OK')
		elements.fld_tasa_iva.requestFocus(true);
		return false;
	}
	if (globals.zparam_usa_proyecto == 1 && proyecto_id == null)
	{
		globals.DIALOGS.showWarningDialog('Aviso','Debe ingresar proyecto','OK')
		elements.fld_proyecto.requestFocus(true);
		return false;
	}
	
	
	var $total = neto + iva + ib_percep + neto_no_gravado
	
	if (Math.abs(importe - $total) > 0.009 )
	{
		globals.DIALOGS.showWarningDialog('Aviso','El importe no coincide con la suma de los netos','OK')
		return false
	}
	provincia_id 		= ctacte_cl_to_clientes.provincia_id
	saldo_aux			= 0
	saldo_resumen_aux	= 0
	cond_pago_id		= 1
	tipo_doc			= 1
	userv_id			= globals.gUservID
	var estado = databaseManager.saveData();
	if (estado == true)
	{
		var $tasa_iva = tasa_iva_id
		globals.DIALOGS.showWarningDialog('Aviso',ctacte_cl_to_tab_mov_cl.descripcion + ' ' + letra + '-' + utils.numberFormat(sucursal,'0000') + '-' + utils.numberFormat(nro_factura,'00000000') + '  Cargada','OK');
		inicio()
		tasa_iva_id = $tasa_iva
	}
	else
	{
		globals.DIALOGS.showWarningDialog('Aviso','Comprobante No fue registrado ',"OK")
		cancelar()	
	}
	return true
}

/**
 * @properties={typeid:24,uuid:"5A4BE79F-CFF6-40FA-A871-F161025E3225"}
 */
function ver_condicion_iva_cliente() 
{
	letra = ctacte_cl_to_clientes.clientes_to_relacion_iva_letra.rel_iva_letra;
	elements.fld_letra.requestFocus()
	return true
}

/**
 * @properties={typeid:24,uuid:"364A2D01-B2C7-46B1-B849-C767AE78FEE0"}
 */
function cancelar() 
{
	databaseManager.revertEditedRecords()
	inicio()
}

/**
 * @properties={typeid:24,uuid:"8A135FF1-54C3-4179-9421-CD361C4D6014"}
 */
function inicio() 
{
	databaseManager.setAutoSave(false)
	controller.newRecord()
	fecha_mov = application.getServerTimeStamp();
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"28AC4DBD-4315-45BC-B4E3-5F16251B1567"}
 */
function onDataChange_importe(oldValue, newValue, event) {
	saldo = importe
	return true
}

/**
 * Handle changed data.
 *
 * @param {Number} oldValue old value
 * @param {Number} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"D97D8819-B732-444C-BDFB-7B60068AB510"}
 */
function onDataChangeTasaIva(oldValue, newValue, event) {
	iva_porc 	= ctacte_cl_to_tasa_iva.tasa_iva_porc
	iva 		= neto * iva_porc / 100
	return true
}

/**
 * Handle changed data.
 *
 * @param {Number} oldValue old value
 * @param {Number} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"616A6342-AF8B-4338-BAD3-43EAC4F27F29"}
 */
function onDataChangeNeto(oldValue, newValue, event) {
	iva 		= neto * iva_porc / 100
	ib_percep 	= neto * ib_percep_porc / 100
	return true
}
